#include <glib-2.0/glib/gthread.h>
#include <glib-2.0/glib/glist.h>

#ifndef _GLIST_TS_H
#define	_GLIST_TS_H

#ifdef	__cplusplus
extern "C" {
#endif

    // appendo in coda
    GList* g_list_append_ts(GList* list, gpointer data, GStaticRWLock* lock);
    // insermento ordinato
    GList* g_list_insert_sorted_ts(GList* list, gpointer data, GCompareFunc func, GStaticRWLock* lock);
    // restituisce il numero di elementi in lista
    guint g_list_length_ts(GList* list, GStaticRWLock* lock);
    // restituzione elemento in posizione pos
    gpointer g_list_get_element_at_ts(GList* list, guint pos, GStaticRWLock* lock);
    // ricerca di un elemento
    GList* g_list_find_custom_ts(GList* list, gpointer data, GCompareFunc func, GStaticRWLock* lock);
    // rimozione senza free
    GList* g_list_remove_custom_ts(GList* list, gpointer data, GCompareFunc func, GStaticRWLock* lock);


#ifdef	__cplusplus
}
#endif

#endif	/* _GLIST_TS_H */

